package com.framework.service;

import com.baomidou.mybatisplus.service.IService;
import com.framework.entity.sys.SysAgent;
import com.framework.entity.sys.SysBank;
import com.framework.page.PageUtils;

import javax.validation.constraints.NotBlank;
import java.util.List;
import java.util.Map;

/**
 * 功能描述: 银行卡信息列表
 *
 * @author ck
 * @date 2018/8/28 19:46
 */
public interface BankService extends IService<SysBank> {
	/**
	 *根据token查询银行卡列表
	 * @param token
	 * @return
	 */
	List<SysBank> queryBankList(String token);

	/**
	 * 新增银行卡
	 * @param bank 银行卡地址对象
	 * @param vCode 验证码
	 * @param token 登录人token
	 */
	void insertBank(SysBank bank, String vCode, String token);

	/**
	 * 修改银行卡
	 * @param bank
	 * @param vCode
	 * @param token
	 */
	void updateBank(SysBank bank, String vCode, String token);

	/**
	 * 验证银行卡是否属于登录人
	 * @param token 登录人token
	 * @param bankId 主键id
	 */
	SysBank infoBank(String token, Long bankId);

	/**
	 *  根据主键查询
	 * @param bankNo
	 * @param deptId
	 * @return
	 */
	SysBank selectBankByNo(String bankNo,Long deptId);

	/**
	 * 设置默认
	 * @param bankId
	 */
	void setDefault(Long bankId);

	/**
	 * 删除
	 * @param bankId
	 */
	void delBank(Long bankId);

	/**
	 * 查询代理商的默认银行卡信息
	 * @param agentId
	 * @return
	 */
	SysBank queryDefault(Long agentId);

	/**
	 * 分页查询银行卡信息
	 * @param params
	 * @return
	 */
	PageUtils queryBankCardList(Map<String, Object> params);

	/**
	 * 根据id查询
	 * @param bankId
	 * @return
	 */
	SysBank queryById(Long bankId);

	/**
	 * 实名认证时添加银行卡
	 * @param bankNo
	 * @param agent
	 */
	void  addBankByVerify(String bankNo, SysAgent agent);

	/**
	 * 根据agentId查询银行卡
	 * @param agentId
	 * @return
	 */
	SysBank queryBankByAgentId(Long agentId);

	/**
	 *  @param bankNo
	 * @param agent
	 * @param phone
	 */
	SysBank addBankByVerify(String bankNo, SysAgent agent, String phone);
}

